<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
<meta name="viewport"
      content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">

    <meta name="author" content="Liux">





<title>Linux系统任务和进程常用操作 | 爱羊羊，爱生活。</title>



    <link rel="icon" href="/favicon.ico">




    <!-- stylesheets list from _config.yml -->
    
    <link rel="stylesheet" href="/css/style.css">
    



    <!-- scripts list from _config.yml -->
    
    <script src="/js/script.js"></script>
    
    <script src="/js/tocbot.min.js"></script>
    



    
    
        
    


</head>
<body>
    <div class="wrapper ">
        <header>
    <nav class="navbar">
        <div class="container">
            <div class="navbar-header header-logo">

<a href="/">卷首</a>

</div>

            <div class="menu navbar-right">
                
                    <a class="menu-item" href="/archives">文章</a>
                
                    <a class="menu-item" href="/category">分类</a>
                
                    <a class="menu-item" href="/tag">标签</a>
                
            </div>

        </div>
    </nav>

    
    <nav class="navbar-mobile" id="nav-mobile">
        <div class="container">
            <div class="navbar-header">
                <div>
                    <a href="/">卷首</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
                </div>
                <div class="menu-toggle" onclick="mobileBtn()">&#9776; Menu</div>
            </div>
            <div class="menu" id="mobile-menu">
                
                    <a class="menu-item" href="/archives">文章</a>
                
                    <a class="menu-item" href="/category">分类</a>
                
                    <a class="menu-item" href="/tag">标签</a>
                
            </div>
        </div>
    </nav>

</header>
<script>
    var mobileBtn = function f() {
        var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
        var mobileMenu = document.getElementById("mobile-menu");
        if(toggleMenu.classList.contains("active")){
           toggleMenu.classList.remove("active")
            mobileMenu.classList.remove("active")
        }else{
            toggleMenu.classList.add("active")
            mobileMenu.classList.add("active")
        }
    }
</script>

	<div class="main">
            <div class="container">
    
    
        <div class="post-toc">
    <div class="tocbot-list">
    </div>
    <div class="tocbot-list-menu">
        <a class="tocbot-toc-expand" onclick="expand_toc()">展开</a>
        <a onclick="go_top()">到顶</a>
        <a onclick="go_bottom()">到底</a>
    </div>
</div>

<script>
    document.ready(
        function () {
            tocbot.init({
                tocSelector: '.tocbot-list',
                contentSelector: '.post-content',
                headingSelector: 'h1, h2, h3, h4, h5',
                collapseDepth: 1,
                orderedList: false,
                scrollSmooth: true,
            })
        }
    )

    function expand_toc() {
        var b = document.querySelector(".tocbot-toc-expand");
        tocbot.init({
            tocSelector: '.tocbot-list',
            contentSelector: '.post-content',
            headingSelector: 'h1, h2, h3, h4, h5',
            collapseDepth: 6,
            orderedList: false,
            scrollSmooth: true,
        });
        b.setAttribute("onclick", "collapse_toc()");
        b.innerHTML = "收起"
    }

    function collapse_toc() {
        var b = document.querySelector(".tocbot-toc-expand");
        tocbot.init({
            tocSelector: '.tocbot-list',
            contentSelector: '.post-content',
            headingSelector: 'h1, h2, h3, h4, h5',
            collapseDepth: 1,
            orderedList: false,
            scrollSmooth: true,
        });
        b.setAttribute("onclick", "expand_toc()");
        b.innerHTML = "展开"
    }

    function go_top() {
        window.scrollTo(0, 0);
    }

    function go_bottom() {
        window.scrollTo(0, document.body.scrollHeight);
    }

</script>

    

    
    <article class="post-wrap">
        <header class="post-header">
            <h1 class="post-title">Linux系统任务和进程常用操作</h1>
            
                <div class="post-meta">
                    
                        <span class="post-time">
                        <a href="#">2020-01-07&nbsp;&nbsp;20:20:00</a>
                        </span>
                    
                    
                </div>
            
        </header>

        <section class="post-tags">
            <div>
                <span class="tag">
                    
                    
                        <a href="/tags/linux/"> linux</a>
                    
                        <a href="/tags/%E8%BF%9B%E7%A8%8B/"> 进程</a>
                    
                        
                </span>
            </div>
        </section>

        <div class="post-content">
            <p>Linux上运行的程序和服务都是以进程的形式存在，有时一个服务会启动多个进程，要想用好Linux，了解一点Linux系统是如何管理进程的，以及怎么查看本机上运行的进程等，都是非常必要的。</p>
<h2 id="查看进程"><a href="#查看进程" class="headerlink" title="查看进程"></a>查看进程</h2><p>下面几个命令常用于查看系统正在运行的进程</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 列出当前正运行进程的详细信息</span></span><br><span class="line"><span class="variable">$ps</span> -ef</span><br><span class="line"><span class="comment"># 使用指定的条件检索当前正在运行的进程并列出进程的ID</span></span><br><span class="line"><span class="variable">$pgrep</span> sshd</span><br><span class="line"><span class="comment"># 列出当前shell中运行的后台任务</span></span><br><span class="line"><span class="variable">$jobs</span></span><br></pre></td></tr></table></figure>
<p>以上命令中：</p>
<ul>
<li><code>ps</code>提供了许多功能参数，但用的最多的还是<code>ps -ef</code>，列出所有正在运行的进程的详细信息。</li>
<li><code>pgrep</code> 相当于专门为检索进程的定制版的<code>grep</code>，另外，还可以使用参数<code>-u</code>在指定的用户进程中检索，例如：<code>pgrep -u root sshd</code></li>
<li><code>jobs</code> 用于列出当前 shell 中运行的后台任务。</li>
</ul>
<h2 id="进程控制"><a href="#进程控制" class="headerlink" title="进程控制"></a>进程控制</h2><p>在当前shell里输入命令，运行一个程序，如果程序运行时间过长而你又没有耐心去等待它结束，可以输入<code>ctrl + c</code>来强行终止程序的运行。也可以输入<code>ctrl+z</code>挂起当前程序。一个被挂起的进程可以使用<code>bg</code>命令指派成一个任务在后台继续运行，可以使用<code>jobs</code>命令查看当前shell中的后台任务，如果有多个后台任务在运行，要从后台唤醒任务，则使用<code>fg</code>命令。</p>
<ul>
<li><code>bg</code>  使挂起的进行继续在后台运行</li>
<li><code>fg</code>  唤醒后台任务</li>
</ul>
<p>独立于当前shell的进程，比如系统服务：<code>ftpd</code>或者<code>httpd</code>等，或者由其它用户运行的进程，要终止它则需要使用<code>kill</code>命令。</p>
<ul>
<li><code>kill process-id</code> 通知指定进程将要被终止</li>
<li><code>kill -9 process-id</code> 强行终止一个进程</li>
<li><code>pkill pattern</code> 以指定的模式检索一个进程并且终止它<br>使用不带参数的<code>kill</code>去杀死一个进程一般都能成功，如果不行则使用参数<code>-9</code>强行终止，但一般作为最后选项，因为强行终止进程可能会造成进程无法执行退出前的一些必要清场工作，甚至可能会造成数据丢失。<br><code>pkill</code>会将检索到的所有符合条件的进程全部终止，所以使用一定要小心，另外，<code>pkill</code>可以方便的结束一个拥有多个进程的应用程序。</li>
</ul>
<h2 id="后台进程"><a href="#后台进程" class="headerlink" title="后台进程"></a>后台进程</h2><p>在shell中，如果一个脚本或可执行程序运行时间超出了你的预期，你可以使用<code>ctrl+z</code>挂起它，还可以使用<code>bg</code>命令在后台运行挂起的进程，或者使用<code>fg</code>重新唤醒进程到前台来运行。但是，一旦你退出了当前的shell，所以挂起的或后台的进程都将终止。<br><code>jobs</code>命令列出所有的挂起进程和后台进程，并给列表中的每个进程分配一个编号，你可以使用这个编号为参数执行<code>bg</code>、<code>fg</code>命令，以便唤起或后台化指定的进程。</p>
<p>如果你一开始就需要在后台运行一个程序，在shell中输入命令时在后面加个<code>&amp;</code>，加<code>&amp;</code>运行的命令，在退出当前shell时会被一并终止，如果需要在退出当前shell后程序仍然运行，<code>&amp;</code>就不管用了，需要用<code>nohup</code>命令告诉系统，将后面运行的程序与当前<code>shell</code>分离。</p>
<ul>
<li><code>command &amp;</code> 在当前shell的后台运行一个命令</li>
<li><code>nohup command</code> 运行命令并将之与当前shell分离</li>
</ul>

        </div>

        
            <section class="post-copyright">
                
                    <p class="copyright-item">
                        <span>文章作者:</span>
                        <span>Liux</span>
                    </p>
                
                
                
                    <p class="copyright-item">
                        <span>许可方式:</span>
                        <span>Copyright (c) 2019 <a href="http://creativecommons.org/licenses/by-nc/4.0/" target="_blank" rel="noopener">CC-BY-NC-4.0</a> LICENSE</span>
                    </p>
                
                

            </section>
        

        <section class="post-nav">
            
                <a class="prev" rel="prev" href="/2020/02/16/MINDSET_THE_NEW_PSYCHOLOGY_OF_SUCCESS/">《终身成长》读书笔记</a>
            
            
            <a class="next" rel="next" href="/2019/12/27/pipyserver-usage/">使用 pypiserver 架设私有的pypi服务器</a>
            
            <a class="back" href="javascript:window.history.back();">退回</a>
        </section>
    </article>
</div>

        </div>
        <footer id="footer" class="footer">
    <div class="copyright">
        <span>© Liux | Powered by <a href="https://hexo.io" target="_blank">Hexo</a></span>
    </div>
</footer>

    </div>
</body>
</html>
